home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / kernel / dev / sun4.md / devVidSun4.s < prev    next >
Text File  |  1992-12-18  |  2KB  |  93 lines

  1. /* devVid.c -
  2.  *
  3.  *     This file contains video routines.
  4.  *
  5.  * Copyright 1988 Regents of the University of California
  6.  * Permission to use, copy, modify, and distribute this
  7.  * software and its documentation for any purpose and without
  8.  * fee is hereby granted, provided that the above copyright
  9.  * notice appear in all copies.  The University of California
  10.  * makes no representations about the suitability of this
  11.  * software for any purpose.  It is provided "as is" without
  12.  * express or implied warranty.
  13.  */
  14. #include    "machConst.h"
  15. #include    "vmSunConst.h"
  16.  
  17. .seg    "data"
  18. .asciz "$Header: /cdrom/src/kernel/Cvsroot/kernel/dev/sun4.md/devVidSun4.s,v 9.3 91/10/17 01:39:36 dlong Exp $ SPRITE (Berkeley)"
  19. .align    8
  20. .seg    "text"
  21.  
  22. #define    VIDEO_ENABLE_BIT    0x8
  23. #ifdef SUCCESS
  24. #undef SUCCESS
  25. #endif
  26. #define    SUCCESS            0
  27.  
  28. /*
  29.  * ----------------------------------------------------------------------------
  30.  *
  31.  * Dev_VidEnable --
  32.  *
  33.  *    Enables or disables the video display on a Sun-4.
  34.  *    The Sun-4 video memory is enabled and disabled by manipulating the
  35.  *    video-enable bit in the system enable register.
  36.  *
  37.  *    status = Dev_VidEnable(onOff)
  38.  *        Boolean    onOff;        (true == on)
  39.  *
  40.  * Results:
  41.  *     SUCCESS - always returned (because it's from a system call).
  42.  *
  43.  * Side effects:
  44.  *     The display is enabled or disabled.
  45.  *
  46.  * ----------------------------------------------------------------------------
  47.  */
  48. .globl    _Dev_VidEnable
  49. _Dev_VidEnable:
  50. #ifndef sun4c
  51.     set    VMMACH_SYSTEM_ENABLE_REG, %OUT_TEMP1
  52.     lduba    [%OUT_TEMP1] VMMACH_CONTROL_SPACE, %OUT_TEMP2
  53.     tst    %o0
  54.     be    VidOff
  55.     nop
  56.     or    %OUT_TEMP2, VIDEO_ENABLE_BIT, %OUT_TEMP2
  57.     b    LeaveVidEnable
  58.     nop
  59. VidOff:
  60.     set    ~VIDEO_ENABLE_BIT, %o0
  61.     and    %OUT_TEMP2, %o0, %OUT_TEMP2
  62. LeaveVidEnable:
  63.     stba    %OUT_TEMP2, [%OUT_TEMP1] VMMACH_CONTROL_SPACE
  64.     set    SUCCESS, %o0
  65.     retl
  66.     nop
  67. #else
  68. #ifdef NOTDEF
  69. /*
  70.  * Thorsten says this is breaking X on the sparcstations.
  71.  */
  72.     /*
  73.      * Address of enable bit in video status register.
  74.      */
  75.     set    0xffd1c010, %OUT_TEMP1
  76.     ldub    [%OUT_TEMP1], %OUT_TEMP2
  77.     tst    %o0
  78.     be    VidOff
  79.     nop
  80.     or    %OUT_TEMP2, 0x40, %OUT_TEMP2
  81.     b    LeaveVidEnable
  82.     nop
  83. VidOff:
  84.     set    ~0x40, %o0
  85.     and    %OUT_TEMP2, %o0, %OUT_TEMP2
  86. LeaveVidEnable:
  87.     stb    %OUT_TEMP2, [%OUT_TEMP1]
  88. #endif NOTDEF
  89.     set    SUCCESS, %o0
  90.     retl
  91.     nop
  92. #endif
  93.